///*** Eclipse Class Decompiler plugin, copyright (c) 2012 Chao Chen (cnfree2000@hotmail.com) ***/
//package com.searchbook.keywordsflow;
//
//import android.content.Context;
//import android.graphics.Paint;
//import android.text.TextUtils.TruncateAt;
//import android.util.AttributeSet;
//import android.util.Log;
//import android.view.View.OnClickListener;
//import android.view.ViewTreeObserver;
//import android.view.ViewTreeObserver.OnGlobalLayoutListener;
//import android.view.animation.AlphaAnimation;
//import android.view.animation.Animation;
//import android.view.animation.Animation.AnimationListener;
//import android.view.animation.AnimationSet;
//import android.view.animation.AnimationUtils;
//import android.view.animation.Interpolator;
//import android.view.animation.ScaleAnimation;
//import android.view.animation.TranslateAnimation;
//import android.widget.FrameLayout;
//import android.widget.FrameLayout.LayoutParams;
//import android.widget.TextView;
//import com.searchsdk.R.drawable;
//import java.util.LinkedList;
//import java.util.Random;
//import java.util.Vector;
//
//public class KeywordsFlow extends FrameLayout implements
//		ViewTreeObserver.OnGlobalLayoutListener {
//	public static final int ANIMATION_IN = 1;
//	public static final int ANIMATION_OUT = 2;
//	public static final long ANIM_DURATION = 800L;
//	public static final int CENTER_TO_LOCATION = 3;
//	public static final int IDX_DIS_Y = 3;
//	public static final int IDX_TXT_LENGTH = 2;
//	public static final int IDX_X = 0;
//	public static final int IDX_Y = 1;
//	public static final int LOCATION_TO_CENTER = 4;
//	public static final int LOCATION_TO_OUTSIDE = 2;
//	public static final int MAX = 10;
//	public static final int OUTSIDE_TO_LOCATION = 1;
//	public static final int TEXT_SIZE_MAX = 28;
//	public static final int TEXT_SIZE_MIN = 16;
//	private static AlphaAnimation animAlpha2Opaque;
//	private static AlphaAnimation animAlpha2Transparent;
//	private static ScaleAnimation animScaleLarge2Normal;
//	private static ScaleAnimation animScaleNormal2Large;
//	private static ScaleAnimation animScaleNormal2Zero;
//	private static ScaleAnimation animScaleZero2Normal;
//	private static Interpolator interpolator;
//	private long animDuration;
//	private boolean enableShow;
//	private int height;
//	private View.OnClickListener itemClickListener;
//	private long lastStartAnimationTime;
//	private Random random;
//	private int txtAnimInType;
//	private int txtAnimOutType;
//	private Vector<String> vecKeywords;
//	private int width;
//
//	public KeywordsFlow(Context paramContext) {
//		super(paramContext);
//		init();
//	}
//
//	public KeywordsFlow(Context paramContext, AttributeSet paramAttributeSet) {
//		super(paramContext, paramAttributeSet);
//		init();
//	}
//
//	public KeywordsFlow(Context paramContext, AttributeSet paramAttributeSet,
//			int paramInt) {
//		super(paramContext, paramAttributeSet, paramInt);
//		init();
//	}
//
//	private void attach2Screen(LinkedList<TextView> paramLinkedList, int paramInt1, int paramInt2, int paramInt3)
//  {
//    int i = paramLinkedList.size();
//    sortXYList(paramLinkedList, i);
//    int j = 0;
//    if (j >= i)
//      label16: return;
//    TextView localTextView = (TextView)paramLinkedList.get(j);
//    int[] arrayOfInt1 = (int[])localTextView.getTag();
//    int k = arrayOfInt1[1] - paramInt2;
//    int l = Math.abs(k);
//    for (int i2 = j - 1; ; --i2)
//    {
//      if (i2 < 0);
//      while (true)
//      {
//        if (l > paramInt3)
//        {
//          int i6 = l - paramInt3;
//          int i7 = k * Math.max(this.random.nextInt(i6), i6 >> 1) / Math.abs(k);
//          arrayOfInt1[1] -= i7;
//          arrayOfInt1[3] = Math.abs(arrayOfInt1[1] - paramInt2);
//          sortXYList(paramLinkedList, j + 1);
//        }
//        FrameLayout.LayoutParams localLayoutParams = new FrameLayout.LayoutParams(-2, -2);
//        localLayoutParams.gravity = 51;
//        localLayoutParams.leftMargin = arrayOfInt1[0];
//        localLayoutParams.topMargin = arrayOfInt1[1];
//        addView(localTextView, localLayoutParams);
//        localTextView.startAnimation(getAnimationSet(arrayOfInt1, paramInt1, paramInt2, this.txtAnimInType));
//        ++j;
//        break label16:
//        int[] arrayOfInt2 = (int[])((TextView)paramLinkedList.get(i2)).getTag();
//        int i3 = arrayOfInt2[0];
//        int i4 = i3 + arrayOfInt2[2];
//        if ((k * (arrayOfInt2[1] - paramInt2) <= 0) || (!(isXMixed(i3, i4, arrayOfInt1[0], arrayOfInt1[0] + arrayOfInt1[2]))))
//          break;
//        int i5 = Math.abs(arrayOfInt1[1] - arrayOfInt2[1]);
//        if (i5 > paramInt3)
//          l = i5;
//        if (l <= 0)
//          continue;
//        int i1 = 0;
//      }
//    }
//  }
//
//	private void disapper()
//  {
//    int i = -1 + getChildCount();
//    if (i < 0)
//      label7: return;
//    TextView localTextView = (TextView)getChildAt(i);
//    if (localTextView.getVisibility() == 8)
//      removeView(localTextView);
//    while (true)
//    {
//      --i;
//      break label7:
//      FrameLayout.LayoutParams localLayoutParams = (FrameLayout.LayoutParams)localTextView.getLayoutParams();
//      int[] arrayOfInt = new int[3];
//      arrayOfInt[0] = localLayoutParams.leftMargin;
//      arrayOfInt[1] = localLayoutParams.topMargin;
//      arrayOfInt[2] = localTextView.getWidth();
//      AnimationSet localAnimationSet = getAnimationSet(arrayOfInt, this.width >> 1, this.height >> 1, this.txtAnimOutType);
//      localTextView.startAnimation(localAnimationSet);
//      localAnimationSet.setAnimationListener(new Animation.AnimationListener(localTextView)
//      {
//        public void onAnimationEnd(Animation paramAnimation)
//        {
//          this.val$txt.setOnClickListener(null);
//          this.val$txt.setClickable(false);
//          this.val$txt.setVisibility(8);
//        }
//
//        public void onAnimationRepeat(Animation paramAnimation)
//        {
//        }
//
//        public void onAnimationStart(Animation paramAnimation)
//        {
//        }
//      });
//    }
//  }
//
//	private void init() {
//		this.lastStartAnimationTime = 0L;
//		this.animDuration = 800L;
//		this.random = new Random();
//		this.vecKeywords = new Vector(10);
//		getViewTreeObserver().addOnGlobalLayoutListener(this);
//		interpolator = AnimationUtils.loadInterpolator(getContext(), 17432582);
//		animAlpha2Opaque = new AlphaAnimation(0.0F, 1.0F);
//		animAlpha2Transparent = new AlphaAnimation(1.0F, 0.0F);
//		animScaleLarge2Normal = new ScaleAnimation(2.0F, 1.0F, 2.0F, 1.0F);
//		animScaleNormal2Large = new ScaleAnimation(1.0F, 2.0F, 1.0F, 2.0F);
//		animScaleZero2Normal = new ScaleAnimation(0.0F, 1.0F, 0.0F, 1.0F);
//		animScaleNormal2Zero = new ScaleAnimation(1.0F, 0.0F, 1.0F, 0.0F);
//	}
//
//	private boolean isXMixed(int paramInt1, int paramInt2, int paramInt3,
//			int paramInt4) {
//		int i;
//		if ((paramInt3 >= paramInt1) && (paramInt3 <= paramInt2))
//			i = 1;
//		do {
//			do {
//				return i;
//				if ((paramInt4 >= paramInt1) && (paramInt4 <= paramInt2))
//					return true;
//				if ((paramInt1 >= paramInt3) && (paramInt1 <= paramInt4))
//					return true;
//				i = 0;
//			} while (paramInt2 < paramInt3);
//			i = 0;
//		} while (paramInt2 > paramInt4);
//		return true;
//	}
//
//	private int[] randomXY(Random paramRandom,
//			LinkedList<Integer> paramLinkedList1,
//			LinkedList<Integer> paramLinkedList2, int paramInt) {
//		int[] arrayOfInt = new int[4];
//		arrayOfInt[0] = ((Integer) paramLinkedList1.remove(paramRandom
//				.nextInt(paramLinkedList1.size()))).intValue();
//		arrayOfInt[1] = ((Integer) paramLinkedList2.remove(paramRandom
//				.nextInt(paramLinkedList2.size()))).intValue();
//		return arrayOfInt;
//	}
//
//	private boolean show()
//  {
//    if ((this.width > 0) && (this.height > 0) && (this.vecKeywords != null) && (this.vecKeywords.size() > 0) && (this.enableShow))
//    {
//      this.enableShow = false;
//      this.lastStartAnimationTime = System.currentTimeMillis();
//      int i = this.width >> 1;
//      int j = this.height >> 1;
//      int k = this.vecKeywords.size();
//      int l = this.width / k;
//      int i1 = this.height / k;
//      Log.d("ANDROID_LAB", "--------------------------width=" + this.width + " height=" + this.height + "  xItem=" + l + " yItem=" + i1 + "---------------------------");
//      LinkedList localLinkedList1 = new LinkedList();
//      LinkedList localLinkedList2 = new LinkedList();
//      LinkedList localLinkedList3;
//      LinkedList localLinkedList4;
//      int i3;
//      for (int i2 = 0; ; ++i2)
//      {
//        if (i2 >= k)
//        {
//          localLinkedList3 = new LinkedList();
//          localLinkedList4 = new LinkedList();
//          i3 = 0;
//          label204: if (i3 < k)
//            break;
//          attach2Screen(localLinkedList3, i, j, i1);
//          attach2Screen(localLinkedList4, i, j, i1);
//          return true;
//        }
//        localLinkedList1.add(Integer.valueOf(i2 * l));
//        localLinkedList2.add(Integer.valueOf(i2 * i1 + (i1 >> 2)));
//      }
//      String str = (String)this.vecKeywords.get(i3);
//      (0xFF000000 | this.random.nextInt(7864319));
//      int[] arrayOfInt = randomXY(this.random, localLinkedList1, localLinkedList2, l);
//      int i4 = 16 + this.random.nextInt(13);
//      TextView localTextView = new TextView(getContext());
//      localTextView.setBackgroundResource(R.drawable.searchsdk_view_border);
//      localTextView.setOnClickListener(this.itemClickListener);
//      int i5 = this.random.nextInt(MyTxtColor.myTxtColor.length);
//      localTextView.setTextColor(MyTxtColor.myTxtColor[i5]);
//      localTextView.setSingleLine();
//      localTextView.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
//      localTextView.setText(str);
//      localTextView.setTextSize(2, i4);
//      localTextView.setGravity(17);
//      int i6 = (int)Math.ceil(localTextView.getPaint().measureText(str));
//      arrayOfInt[2] = i6;
//      if (i6 + arrayOfInt[0] > this.width - (l >> 1))
//      {
//        arrayOfInt[0] = (this.width - i6 - l + this.random.nextInt(l >> 1));
//        label491: arrayOfInt[3] = Math.abs(arrayOfInt[1] - j);
//        localTextView.setTag(arrayOfInt);
//        if (arrayOfInt[1] <= j)
//          break label563;
//        localLinkedList4.add(localTextView);
//      }
//      while (true)
//      {
//        ++i3;
//        break label204:
//        if (arrayOfInt[0] == 0);
//        arrayOfInt[0] = Math.max(this.random.nextInt(l), l / 3);
//        break label491:
//        label563: localLinkedList3.add(localTextView);
//      }
//    }
//    return false;
//  }
//
//	private void sortXYList(LinkedList<TextView> paramLinkedList, int paramInt) {
//		int i = 0;
//		if (i >= paramInt)
//			return;
//		for (int j = i + 1;; ++j) {
//			if (j >= paramInt)
//				++i;
//			if (((int[]) ((TextView) paramLinkedList.get(j)).getTag())[3] >= ((int[]) ((TextView) paramLinkedList
//					.get(i)).getTag())[3])
//				continue;
//			TextView localTextView = (TextView) paramLinkedList.get(i);
//			paramLinkedList.set(i, (TextView) paramLinkedList.get(j));
//			paramLinkedList.set(j, localTextView);
//		}
//	}
//
//	public boolean addKeyword2list(String paramString) {
//		int i = this.vecKeywords.size();
//		boolean bool = false;
//		if (i < 10)
//			bool = this.vecKeywords.add(paramString);
//		return bool;
//	}
//
//	public AnimationSet getAnimationSet(int[] paramArrayOfInt, int paramInt1,
//			int paramInt2, int paramInt3) {
//		AnimationSet localAnimationSet = new AnimationSet(true);
//		localAnimationSet.setInterpolator(interpolator);
//		if (paramInt3 == 1) {
//			localAnimationSet.addAnimation(animAlpha2Opaque);
//			localAnimationSet.addAnimation(animScaleLarge2Normal);
//			localAnimationSet
//					.addAnimation(new TranslateAnimation(paramArrayOfInt[0]
//							+ (paramArrayOfInt[2] >> 1) - paramInt1 << 1, 0.0F,
//							paramArrayOfInt[1] - paramInt2 << 1, 0.0F));
//		}
//		while (true) {
//			localAnimationSet.setDuration(this.animDuration);
//			return localAnimationSet;
//			if (paramInt3 == 2) {
//				localAnimationSet.addAnimation(animAlpha2Transparent);
//				localAnimationSet.addAnimation(animScaleNormal2Large);
//				localAnimationSet.addAnimation(new TranslateAnimation(0.0F,
//						paramArrayOfInt[0] + (paramArrayOfInt[2] >> 1)
//								- paramInt1 << 1, 0.0F, paramArrayOfInt[1]
//								- paramInt2 << 1));
//			}
//			if (paramInt3 == 4) {
//				localAnimationSet.addAnimation(animAlpha2Transparent);
//				localAnimationSet.addAnimation(animScaleNormal2Zero);
//				localAnimationSet.addAnimation(new TranslateAnimation(0.0F,
//						paramInt1 + -paramArrayOfInt[0], 0.0F, paramInt2
//								+ -paramArrayOfInt[1]));
//			}
//			if (paramInt3 != 3)
//				continue;
//			localAnimationSet.addAnimation(animAlpha2Opaque);
//			localAnimationSet.addAnimation(animScaleZero2Normal);
//			localAnimationSet.addAnimation(new TranslateAnimation(paramInt1
//					+ -paramArrayOfInt[0], 0.0F, paramInt2
//					+ -paramArrayOfInt[1], 0.0F));
//		}
//	}
//
//	public long getDuration() {
//		return this.animDuration;
//	}
//
//	public Vector<String> getKeywords() {
//		return this.vecKeywords;
//	}
//
//	public void onGlobalLayout() {
//		int i = getWidth();
//		int j = getHeight();
//		if ((this.width == i) && (this.height == j))
//			return;
//		this.width = i;
//		this.height = j;
//		show();
//	}
//
//	public void rubAllViews() {
//		removeAllViews();
//	}
//
//	public void rubKeywords() {
//		this.vecKeywords.clear();
//	}
//
//	public void setDuration(long paramLong) {
//		this.animDuration = paramLong;
//	}
//
//	public void setOnItemClickListener(View.OnClickListener paramOnClickListener) {
//		this.itemClickListener = paramOnClickListener;
//	}
//
//	public boolean show(int paramInt) {
//		if (System.currentTimeMillis() - this.lastStartAnimationTime > this.animDuration) {
//			this.enableShow = true;
//			if (paramInt == 1)
//				this.txtAnimInType = 1;
//			for (this.txtAnimOutType = 4;; this.txtAnimOutType = 2) {
//				do {
//					disapper();
//					return show();
//				} while (paramInt != 2);
//				this.txtAnimInType = 3;
//			}
//		}
//		return false;
//	}
//}